package com.service;

import com.entity.EngineerProjectInfo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

public interface EngineerProjectInfoService {

    /**
     * 保存工程项目信息
     * @param engineerProjectInfo 工程项目信息
     * @return 保存后的工程项目信息
     */
    EngineerProjectInfo save(EngineerProjectInfo engineerProjectInfo);

    /**
     * 根据ID删除工程项目信息
     * @param id 工程项目信息ID
     */
    void deleteById(Integer id);

    /**
     * 根据ID更新工程项目信息
     * @param id 工程项目信息ID
     * @param engineerProjectInfo 更新的工程项目信息
     * @return 更新后的工程项目信息
     */
    EngineerProjectInfo update(Integer id, EngineerProjectInfo engineerProjectInfo);

    /**
     * 根据ID获取工程项目信息
     * @param id 工程项目信息ID
     * @return 工程项目信息
     */
    Optional<EngineerProjectInfo> findById(Integer id);

    /**
     * 获取所有工程项目信息
     * @return 工程项目信息列表
     */
    List<EngineerProjectInfo> findAll();

    /**
     * 分页查询工程项目信息
     * @param pageable 分页参数
     * @return 工程项目信息分页数据
     */
    Page<EngineerProjectInfo> findAll(Pageable pageable);
}